package model

import (
	"fmt"
	"github.com/jinzhu/gorm"
)

// 用户角色中间表
type UserRole struct {
	UserId string `json:"userId"` // 用户id
	RoleId string `json:"roleId"` // 角色id
}

// 重置表名
func (u *UserRole) TableName() string {
	return "sys_user_role"
}

// 批量插入角色-菜单表
func (u *UserRole) Create(db *gorm.DB, userId string, roleIds []string) error {
	sqlStr := "INSERT INTO sys_user_role (user_id, role_id) VALUES "
	for i := 0; i < len(roleIds); i++ {
		sqlStr += fmt.Sprintf("('%s', '%s'),", userId, roleIds[i])
	}
	sqlStr = sqlStr[0:(len(sqlStr) - 1)]
	return db.Exec(sqlStr).Error
}

// 根据角色id获取绑定的菜单中间表集合
func (u *UserRole) GetRoleIdsByUserId(db *gorm.DB, userId string) ([]*UserRole, error) {
	var userRole []*UserRole
	if err := db.Where("user_id = ?", userId).Find(&userRole).Error; err != nil {
		return userRole, err
	}
	return userRole, nil
}

// 删除角色菜单关联表
func (u *UserRole) Delete(db *gorm.DB, userId string) error {
	return db.Where("user_id = ?", userId).Delete(&u).Error
}


